package com.zjq.designpatterns.creation.prototype.code.use1;/*
 * 版权信息: 北京千⾥马网信科技有限公司</br>
 * Copyright ©2008-2018. All rights reserved. 京ICP备16007318号
 */

/**
 * @author jessie
 * @version 1.0
 * @date 2021/1/22
 */
public class Test {
    public static void main(String[] args) throws CloneNotSupportedException {
        Mail mail = new Mail();
        mail.setContent("初始化模板");
        System.out.println("初始化的mail:"+mail.toString());
        for (int i = 0; i < 10; i++) {
            //new会消耗性能， 原型模式解决这个问题，在内存中进行2进制流的拷贝，比new性能快很多
            //如果构造mail麻烦，产生大量对象，那么这里适合用原型模式
//            Mail mail = new Mail();
            Mail tempMail = (Mail) mail.clone(); //tempMail和mail不是一个对象
            tempMail.setName("jessie"+i);
            tempMail.setEmailAddress("zhujunqing9@163.com");
            tempMail.setContent("恭喜你，活动中奖");
            MailUtil.sendMail(tempMail);
            System.out.println("克隆的mail:"+tempMail.toString());
        }
        //存储原始mail,初始化的mail,假设这里不能动
        MailUtil.saveOriginMailRecord(mail);
    }
}
